package com.cyl.wms.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;

/**
 * 供应商
 * TableName  wms_supplier
 */
@TableName(value ="wms_supplier")
@Data
public class Supplier implements Serializable {
    /**
     * 
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 编号
     */
    private String supplierNo;

    /**
     * 名称
     */
    private String supplierName;

    /**
     * 开户行
     */
    private String bankName;

    /**
     * 银行账户
     */
    private String bankAccount;

    /**
     * 应付款
     */
    private BigDecimal payableAmount;

    /**
     * 地址
     */
    private String address;

    /**
     * 手机号
     */
    private String mobileNo;

    /**
     * 座机号
     */
    private String telNo;

    /**
     * 联系人
     */
    private String contact;

    /**
     * 级别
     */
    private String level;

    /**
     * Email
     */
    private String email;

    /**
     * 备注
     */
    private String remark;

    /**
     * 删除标识
     */
    private Integer delFlag;

    /**
     * 创建人
     */
    private Long createBy;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 修改人
     */
    private Long updateBy;

    /**
     * 修改时间
     */
    private Date updateTime;

    /**
     * 供应商分类ID
     */
    private Long supplierCategoryId;

    /**
     * 供应商分类名称
     */
    private String supplierCategoryName;

    /**
     * 业务员ID
     */
    private Long salespersonId;

    /**
     * 业务员名称
     */
    private String salespersonName;

    /**
     * 税号
     */
    private String taxNumber;

    /**
     * 省份
     */
    private String province;

    /**
     * 城市
     */
    private String city;

    /**
     * 公司网站
     */
    private String companyWebsite;

    /**
     * 供应商状态
     */
    private String supplierStatus;

    /**
     * 售价级别
     */
    private String priceLevel;

    /**
     * 创建日期
     */
    private Date createDate;

    /**
     * 首营产品
     */
    private String firstApprovalProduct;

    /**
     * 备注
     */
    private String remarks;

    /**
     * 传真
     */
    private String fax;

    /**
     * 企业性质
     */
    private String enterpriseNature;

    /**
     * 供应商级别
     */
    private String supplierLevel;

    /**
     * 所属部门
     */
    private String department;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        Supplier other = (Supplier) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getSupplierNo() == null ? other.getSupplierNo() == null : this.getSupplierNo().equals(other.getSupplierNo()))
            && (this.getSupplierName() == null ? other.getSupplierName() == null : this.getSupplierName().equals(other.getSupplierName()))
            && (this.getBankName() == null ? other.getBankName() == null : this.getBankName().equals(other.getBankName()))
            && (this.getBankAccount() == null ? other.getBankAccount() == null : this.getBankAccount().equals(other.getBankAccount()))
            && (this.getPayableAmount() == null ? other.getPayableAmount() == null : this.getPayableAmount().equals(other.getPayableAmount()))
            && (this.getAddress() == null ? other.getAddress() == null : this.getAddress().equals(other.getAddress()))
            && (this.getMobileNo() == null ? other.getMobileNo() == null : this.getMobileNo().equals(other.getMobileNo()))
            && (this.getTelNo() == null ? other.getTelNo() == null : this.getTelNo().equals(other.getTelNo()))
            && (this.getContact() == null ? other.getContact() == null : this.getContact().equals(other.getContact()))
            && (this.getLevel() == null ? other.getLevel() == null : this.getLevel().equals(other.getLevel()))
            && (this.getEmail() == null ? other.getEmail() == null : this.getEmail().equals(other.getEmail()))
            && (this.getRemark() == null ? other.getRemark() == null : this.getRemark().equals(other.getRemark()))
            && (this.getDelFlag() == null ? other.getDelFlag() == null : this.getDelFlag().equals(other.getDelFlag()))
            && (this.getCreateBy() == null ? other.getCreateBy() == null : this.getCreateBy().equals(other.getCreateBy()))
            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
            && (this.getUpdateBy() == null ? other.getUpdateBy() == null : this.getUpdateBy().equals(other.getUpdateBy()))
            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
            && (this.getSupplierCategoryId() == null ? other.getSupplierCategoryId() == null : this.getSupplierCategoryId().equals(other.getSupplierCategoryId()))
            && (this.getSupplierCategoryName() == null ? other.getSupplierCategoryName() == null : this.getSupplierCategoryName().equals(other.getSupplierCategoryName()))
            && (this.getSalespersonId() == null ? other.getSalespersonId() == null : this.getSalespersonId().equals(other.getSalespersonId()))
            && (this.getSalespersonName() == null ? other.getSalespersonName() == null : this.getSalespersonName().equals(other.getSalespersonName()))
            && (this.getTaxNumber() == null ? other.getTaxNumber() == null : this.getTaxNumber().equals(other.getTaxNumber()))
            && (this.getProvince() == null ? other.getProvince() == null : this.getProvince().equals(other.getProvince()))
            && (this.getCity() == null ? other.getCity() == null : this.getCity().equals(other.getCity()))
            && (this.getCompanyWebsite() == null ? other.getCompanyWebsite() == null : this.getCompanyWebsite().equals(other.getCompanyWebsite()))
            && (this.getSupplierStatus() == null ? other.getSupplierStatus() == null : this.getSupplierStatus().equals(other.getSupplierStatus()))
            && (this.getPriceLevel() == null ? other.getPriceLevel() == null : this.getPriceLevel().equals(other.getPriceLevel()))
            && (this.getCreateDate() == null ? other.getCreateDate() == null : this.getCreateDate().equals(other.getCreateDate()))
            && (this.getFirstApprovalProduct() == null ? other.getFirstApprovalProduct() == null : this.getFirstApprovalProduct().equals(other.getFirstApprovalProduct()))
            && (this.getRemarks() == null ? other.getRemarks() == null : this.getRemarks().equals(other.getRemarks()))
            && (this.getFax() == null ? other.getFax() == null : this.getFax().equals(other.getFax()))
            && (this.getEnterpriseNature() == null ? other.getEnterpriseNature() == null : this.getEnterpriseNature().equals(other.getEnterpriseNature()))
            && (this.getSupplierLevel() == null ? other.getSupplierLevel() == null : this.getSupplierLevel().equals(other.getSupplierLevel()))
            && (this.getDepartment() == null ? other.getDepartment() == null : this.getDepartment().equals(other.getDepartment()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getSupplierNo() == null) ? 0 : getSupplierNo().hashCode());
        result = prime * result + ((getSupplierName() == null) ? 0 : getSupplierName().hashCode());
        result = prime * result + ((getBankName() == null) ? 0 : getBankName().hashCode());
        result = prime * result + ((getBankAccount() == null) ? 0 : getBankAccount().hashCode());
        result = prime * result + ((getPayableAmount() == null) ? 0 : getPayableAmount().hashCode());
        result = prime * result + ((getAddress() == null) ? 0 : getAddress().hashCode());
        result = prime * result + ((getMobileNo() == null) ? 0 : getMobileNo().hashCode());
        result = prime * result + ((getTelNo() == null) ? 0 : getTelNo().hashCode());
        result = prime * result + ((getContact() == null) ? 0 : getContact().hashCode());
        result = prime * result + ((getLevel() == null) ? 0 : getLevel().hashCode());
        result = prime * result + ((getEmail() == null) ? 0 : getEmail().hashCode());
        result = prime * result + ((getRemark() == null) ? 0 : getRemark().hashCode());
        result = prime * result + ((getDelFlag() == null) ? 0 : getDelFlag().hashCode());
        result = prime * result + ((getCreateBy() == null) ? 0 : getCreateBy().hashCode());
        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
        result = prime * result + ((getUpdateBy() == null) ? 0 : getUpdateBy().hashCode());
        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
        result = prime * result + ((getSupplierCategoryId() == null) ? 0 : getSupplierCategoryId().hashCode());
        result = prime * result + ((getSupplierCategoryName() == null) ? 0 : getSupplierCategoryName().hashCode());
        result = prime * result + ((getSalespersonId() == null) ? 0 : getSalespersonId().hashCode());
        result = prime * result + ((getSalespersonName() == null) ? 0 : getSalespersonName().hashCode());
        result = prime * result + ((getTaxNumber() == null) ? 0 : getTaxNumber().hashCode());
        result = prime * result + ((getProvince() == null) ? 0 : getProvince().hashCode());
        result = prime * result + ((getCity() == null) ? 0 : getCity().hashCode());
        result = prime * result + ((getCompanyWebsite() == null) ? 0 : getCompanyWebsite().hashCode());
        result = prime * result + ((getSupplierStatus() == null) ? 0 : getSupplierStatus().hashCode());
        result = prime * result + ((getPriceLevel() == null) ? 0 : getPriceLevel().hashCode());
        result = prime * result + ((getCreateDate() == null) ? 0 : getCreateDate().hashCode());
        result = prime * result + ((getFirstApprovalProduct() == null) ? 0 : getFirstApprovalProduct().hashCode());
        result = prime * result + ((getRemarks() == null) ? 0 : getRemarks().hashCode());
        result = prime * result + ((getFax() == null) ? 0 : getFax().hashCode());
        result = prime * result + ((getEnterpriseNature() == null) ? 0 : getEnterpriseNature().hashCode());
        result = prime * result + ((getSupplierLevel() == null) ? 0 : getSupplierLevel().hashCode());
        result = prime * result + ((getDepartment() == null) ? 0 : getDepartment().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", supplierNo=").append(supplierNo);
        sb.append(", supplierName=").append(supplierName);
        sb.append(", bankName=").append(bankName);
        sb.append(", bankAccount=").append(bankAccount);
        sb.append(", payableAmount=").append(payableAmount);
        sb.append(", address=").append(address);
        sb.append(", mobileNo=").append(mobileNo);
        sb.append(", telNo=").append(telNo);
        sb.append(", contact=").append(contact);
        sb.append(", level=").append(level);
        sb.append(", email=").append(email);
        sb.append(", remark=").append(remark);
        sb.append(", delFlag=").append(delFlag);
        sb.append(", createBy=").append(createBy);
        sb.append(", createTime=").append(createTime);
        sb.append(", updateBy=").append(updateBy);
        sb.append(", updateTime=").append(updateTime);
        sb.append(", supplierCategoryId=").append(supplierCategoryId);
        sb.append(", supplierCategoryName=").append(supplierCategoryName);
        sb.append(", salespersonId=").append(salespersonId);
        sb.append(", salespersonName=").append(salespersonName);
        sb.append(", taxNumber=").append(taxNumber);
        sb.append(", province=").append(province);
        sb.append(", city=").append(city);
        sb.append(", companyWebsite=").append(companyWebsite);
        sb.append(", supplierStatus=").append(supplierStatus);
        sb.append(", priceLevel=").append(priceLevel);
        sb.append(", createDate=").append(createDate);
        sb.append(", firstApprovalProduct=").append(firstApprovalProduct);
        sb.append(", remarks=").append(remarks);
        sb.append(", fax=").append(fax);
        sb.append(", enterpriseNature=").append(enterpriseNature);
        sb.append(", supplierLevel=").append(supplierLevel);
        sb.append(", department=").append(department);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}